#include <bits/stdc++.h>

#define in read()
#define fi first
#define se second
#define pb push_back
#define rep(i, x, y) for(int i = (x); i <= (y); i++)
#define per(i, x, y) for(int i = (x); i >= (y); i--)

using namespace std;

using pii = pair < int , int >;
using vec = vector < int >;
using veg = vector < pii >;
using ll = long long;
using db = double;
using tl = tuple < int, int, int >;

int read() {
    int x = 0; bool f = 0; char ch = getchar(); while(!isdigit(ch)) f |= ch == '-',ch = getchar();
    while(isdigit(ch)) x = x * 10 + (ch ^ 48),ch = getchar(); return f ? -x : x;
}

const int N = 110;
const db eps = 1e-7;

db a[N][N];
int n;

int main() {
#ifndef ONLINE_JUDGE
    freopen("1.in","r",stdin);
#endif
	ios :: sync_with_stdio(false); cin.tie(0);
	cin >> n; rep(i, 1, n) rep(j, 1, n + 1) cin >> a[i][j];
	rep(i, 1, n) {
		int p = -1; rep(j, i, n) if(fabs(a[j][i]) > eps) { p = j; break; }
		if(p == -1) return puts("No Solution"), 0;
		if(p ^ i) swap(a[i], a[p]);
		rep(j, i + 1, n + 1) a[i][j] /= a[i][i];
		a[i][i] = 1;
		rep(j, 1, n) if(j ^ i) {
			db t = a[j][i] / a[i][i];
			rep(k, i, n + 1) a[j][k] -= a[i][k] * t;
		}
	}
	rep(i, 1, n) printf("%.2lf\n", a[i][n + 1]); return 0;
}
